<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page import="pojo.User" %>
<%@ page import="java.util.Enumeration" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page errorPage="jsp1.jsp" %>
<html>
<head>
    <title>使用jsp</title>
</head>
<body>
<%--写java代码 --%>
<%
    int i = 1;
    int x = 4;
%>

<%--
输入和out的一样
--%>
<%=i + x%>
<%--声明成员变量--%>
<%! String name = "张三";%>

<%
    List<User> list = new ArrayList<>();
    list.add(new User("张三", 22));
    list.add(new User("李斯特", 10));
%>

<table>
    <tr>
        <td>姓名</td>
        <td>年龄</td>
    </tr>

    <%
        for (User user : list) {
    %>
    <tr>
        <td><%= user.getName() %>
        </td>
        <td><%= user.getAge() %>
        </td>
    </tr>
    <%
        }
    %>

</table>
<p>九大内置对象</p>

<%--用于向页面输入--%>
<%
    out.print("out 内置对象测试");
%>
<h1>out 用于向页面输入</h1>


<%-- config 获取 servlet的配置参数--%>
<%
    String servletName = config.getServletName();
    System.out.println(servletName);
    String parameter = config.getInitParameter("age");
    System.out.println(parameter);
    Enumeration<String> initParameterNames = config.getInitParameterNames();
    while (initParameterNames.hasMoreElements()) {
        System.out.println("init参数" + initParameterNames.nextElement());
    }
    ServletContext servletContext = config.getServletContext();
%>
<h1>config 获取 servlet的配置参数</h1>


<%--    page==this--%>
<%
    System.out.println(page == this);
%>
<h1>page ==this 当前servlet对象</h1>


<%
    System.out.println(request.getAttribute("requestKey"));
%>
<h1>request 域对象一次请求之间的活跃的域对象</h1>

<%
    // response.sendRedirect("jsp1.jsp");
%>
<h1>response 重定向页面</h1>

<%
    Object count = application.getAttribute("count");
    if (count == null) {
        application.setAttribute("count", 1);
    } else {
        int c = (Integer) count;
        application.setAttribute("count", c + 1);
    }

    System.out.println("网站访问人数" + application.getAttribute("count"));
%>
<h1>application 就是 servletContext域对象.全局域对象</h1>


<%
    session.setAttribute("sessionKey", "sessionValue");
%>
<h1>session 域对象,一次会话之间活跃的对象</h1>

<%

    System.out.println("使用pageContext取session中的值" + pageContext.getAttribute("sessionKey", 3));
%>
<h1>pageContext域对象,可以获取其他隐藏的8个内置对象
    只能在当前页面活跃,但是它可以获取或者删除4个域对象中存的attribute,pageContext.getAttribute("key",1);1pageContext域2request域3session域4application域</h1>
<%--<%
    Integer e = 1/0;
%>--%>
<h1>jsp三大指令</h1>

<h2> page指令</h2>
<p>
    导包.
    %@ page contentType="text/html;charset=UTF-8" %
    设置编码.
    %@ page import="java.lang.Integer" %
    跳转错误页面,这个跳转是转发,而不是重定向
    %@ page errorPage="jsp1.jsp" %
    声明当前页面为异常页面可以使用exception内置对象
    %@ page isErrorPage="true" %
</p>

<h2>include指令</h2>
<p>包含指定页面当当前位置%@ include file="jsp2.jsp" %</p>


<h2>taglib指令</h2>
<p>用于导入标签库 %@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"% </p>

</body>
</html>
